#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,e,n,l=0,l2=0;
char d1,d2,d3,mh;
bool bj,bj2,bj3;
struct com {
	int l1,l2,l3,l4,port,bh;
} ser[1000000],cl[1000000];
string str;
int main() {
	freopen("network.in","r",stdin);
	freopen("network.out","w",stdout);
	scanf("%d",&n);
	for(int i=1; i<=n; i++) {
		cin>>str;
		scanf("%d%c%d%c%d%c%d%c%d",&a,&d1,&b,&d2,&c,&d3,&d,&mh,&e);
		if(a>255||b>255||c>255|d>255||e>65535||d1!='.'||d2!='.'||d3!='.'||mh!=':') {
			printf("ERR"),cout<<endl;
		} else {
			if(str=="Server") {
				bj=0;
				l++;
				ser[l].l1=a;
				ser[l].l2=b;
				ser[l].l3=c;
				ser[l].l4=d;
				ser[l].port=e;
				ser[l].bh=i;
				for(int j=1; j<=l-1; j++) {
					if(ser[l].l1==ser[j].l1&&ser[l].l2==ser[j].l2&&ser[l].l3==ser[j].l3&&ser[l].l4==ser[j].l4) {
						if(ser[l].port==ser[j].port) {
							printf("FAIL"),cout<<endl;
							bj=1;
							break;
						}

					}
				}
				if(bj==0) printf("OK"),cout<<endl;
			}
			if(str=="Client") {
				bj2=0;
				bj3=0;
				l2++;
				cl[l2].l1=a;
				cl[l2].l2=b;
				cl[l2].l3=c;
				cl[l2].l4=d;
				cl[l2].port=e;
					for(int j=1; j<=l; j++)
						if(cl[l2].l1==ser[j].l1&&cl[l2].l2==ser[j].l2&&cl[l2].l3==ser[j].l3&&cl[l2].l4==ser[j].l4&&cl[l2].port==ser[j].port) {
							printf("%d",ser[j].bh);
							cout<<endl;
							bj3=1;
							break;
					}
					if(bj3==0)
					{
						printf("FAIL");
						cout<<endl;
						l2--;
					}
			}
		}

	}
}
